Network systems typically have a media access controller (MAC), which receives packets from a physical media such as twisted pair copper wire in the case of IEEE 802.3 commonly known as copper ethernet, or from a wireless front end which converts RF signals into packets as in the case of IEEE standard 802.11, commonly known as wireless ethernet. The MAC provides the interface from a variety of physical interfaces and produces a single interface for receiving and transmitting packets. A host is a function or device which receives and transmits packets, typically from some sort of client or server application software program. Each MAC and host interface may generate or accept packets at different times, and at different rates. The balance of packets which are received from one interface before being handled by the other interface are stored in a packet buffer. FIG. 1 shows the arrangement of a Host 12, a MAC 14, and a packet buffer 18, wherein they share an interface 16. A well-known problem in the area of networking is the sharing of this interface 16 among a plurality of host and MAC devices. The PCI bus specification from PCISIG (www.pci.org) is one example of a shared bus which was developed for applications where there are multiple devices sharing a pooled memory resource, and is one of the prior art solutions to the interface 18 of FIG. 1. Each new version of PCI provides greater bandwidth to support each new generation of higher speed ethernet adapters. For example, is currently possible to place many gigabit ethernet devices on a shared memory 18 in an Intel cpu-based host, or personal computer (PC) 12.
Advances in wireless communications have provided a different challenge from those presented by high speed ethernet connections. Each wireless device represents a lower speed connection, and as portable devices, the system power budget must be carefully managed. For these devices, a lower complexity interface translates into lower power and longer battery life. Additionally, the quality of service requirements are different for wireless devices compared to ethernet devices. When the reliability or bandwidth of the channel degrades, ensuring that high priority traffic continues to receive the highest quality of service at the expense of competing streams of traffic becomes very important. It is desired to have a communications interface with the following features:
a) a shared bus and shared memory for moving data from a host to a MAC;
b) separation of memory allocation into a plurality of separate queues;
c) separation of packet memory into three coupled entities known as a packet memory slot, each packet memory slot comprising a descriptor status bit which provides a single-bit representation of the availability of the present packet memory slot, a descriptor memory location, and a data segment memory location.
d) a plurality of queues, each queue comprising a plurality of packet memory slots.